/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import java.sql.ResultSet;
import java.util.ArrayList;
import pojo.LoaiGiayPOJO;
import util.MySQLDataAccessHelper;

/**
 *
 * @author NhatHuy
 */
public class LoaiGiayDAO {
    /**
     * Phương thức lấy danh mục loại giày.
     */
    public static ArrayList<LoaiGiayPOJO> layDanhMucLoaiGiay(){
        ArrayList<LoaiGiayPOJO> ds = new ArrayList<LoaiGiayPOJO>();
        try{
            //Kết nối csdl.
            MySQLDataAccessHelper helper = new MySQLDataAccessHelper();
            helper.open();
            String sql = "SELECT * FROM LOAIGIAY";
            ResultSet rs = helper.executeQuery(sql);
            while (rs.next()){
                LoaiGiayPOJO lg = new LoaiGiayPOJO();
                lg.setMaLoaiGiay(rs.getInt("MaLoaiGiay"));
                lg.setTenLoaiGiay(rs.getString("TenLoaiGiay"));
                ds.add(lg);
            }
            //Đóng kết nối.
            helper.close();
        }catch (Exception ex){
            System.out.println(ex.getMessage());
        }
        return ds;
    }
    
    /**
     * Phương thức lấy danh mục loại giày theo giới tính.
     */
    public static ArrayList<LoaiGiayPOJO> layDanhMucLoaiGiay_TheoGioiTinh_Client(int gioiTinh){
        ArrayList<LoaiGiayPOJO> ds = new ArrayList<LoaiGiayPOJO>();
        try{
            //Kết nối csdl.
            MySQLDataAccessHelper helper = new MySQLDataAccessHelper();
            helper.open();
            String sql = "SELECT * FROM LOAIGIAY as lg, GIAY as g WHERE lg.MaLoaiGiay=g.MaLoaiGiay AND GioiTinh="+gioiTinh+" GROUP BY lg.MaLoaiGiay";
            ResultSet rs = helper.executeQuery(sql);
            while (rs.next()){
                LoaiGiayPOJO lg = new LoaiGiayPOJO();
                lg.setMaLoaiGiay(rs.getInt("MaLoaiGiay"));
                lg.setTenLoaiGiay(rs.getString("TenLoaiGiay"));
                ds.add(lg);
            }
            //Đóng kết nối.
            helper.close();
        }catch (Exception ex){
            System.out.println(ex.getMessage());
        }
        return ds;
    }
    
    /**
     * Phương thức lấy số lượng loại giày.
     */
    public static int laySoLuongLoaiGiay(int gioiTinh, int maLoaiGiay){
        int tong = 0;
        try{
            //Kết nối csdl.
            MySQLDataAccessHelper helper = new MySQLDataAccessHelper();
            helper.open();
            String sql = "SELECT COUNT(*) AS SOLUONG FROM GIAY WHERE MaTinhTrang!=3 AND GioiTinh="+gioiTinh+" AND MALOAIGIAY="+maLoaiGiay+"";
            ResultSet rs = helper.executeQuery(sql);
            if (rs.next()){
                tong = rs.getInt("SoLuong");
            }
            //Đóng kết nối.
            helper.close();
        }catch (Exception ex){
            System.out.println(ex.getMessage());
        }
        return tong;
    }   
    
    /**
     * Phương thức tính số lượng trang.
     */
    public static int tinhSoLuongTrang(int gioiTinh, int maLoaiGiay){
        int soTrang = 0;
        try{
            int soLuongSanPhamTrenTrang = ThamSoDAO.laySoLuongSanPhamTrenTrangClient();
            int soLuong = LoaiGiayDAO.laySoLuongLoaiGiay(gioiTinh, maLoaiGiay);
            soTrang = soLuong/soLuongSanPhamTrenTrang;
            if (soLuong % soLuongSanPhamTrenTrang != 0){
                soTrang++;
            }
        }catch (Exception ex){
            System.out.println(ex.getMessage());
        }
        return soTrang;
    }   
    
    /**
     * Phương thức tìm tên loại giày theo mã loại giày.
     */
    public static String timTenLoaiGiayTheoMa(int maMaLoaiGiay){
        String tenLoaiGiay = "";
        try{
            //Kết nối csdl.
            MySQLDataAccessHelper helper = new MySQLDataAccessHelper();
            helper.open();
            String sql = "SELECT TenLoaiGiay FROM LoaiGiay WHERE maLoaiGiay = "+maMaLoaiGiay;
            ResultSet rs = helper.executeQuery(sql);
            while (rs.next()){
                tenLoaiGiay = rs.getString("TenLoaiGiay");
            }
            //Đóng kết nối.
            helper.close();
        }catch (Exception ex){
            System.out.println(ex.getMessage());
        }
        return tenLoaiGiay;
    }
}
